var ajax;
var dadosUsuario;

// ---------- cria objeto e faz requisição ------------------
function requisicaoHTTP(tipo,url,assinc){
	if(window.XMLHttpRequest){	// Mozilla, Safari
		ajax = new XMLHttpRequest();
	}else if(window.ActiveXObject){ //IE
		ajax = new ActiveXObject("Msxml2.XMLHTTP");
		if(!ajax){
			ajax = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	if(ajax){ // iniciou com Sucesso
		iniciaRequisicao(tipo,url,assinc);
	}else{
		alert("Seu navegador não possui supoerte para essa aplicação!");
	}
}

//-----Inicia o objeto criado e envia os dados (se existirem) -------
function iniciaRequisicao(tipo,url,bool){
	ajax.onreadystatechange=trataResposta;
	ajax.open(tipo,url,bool);
	ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
	//ajax.overrideMimeType("text/XML"); /* Usado somente no Mozilla */
	ajax.send(dadosUsuario);
}

//---------Inicia requisição com envio de dados ---------------------
function enviaDados(url){
	alert(document.forms[0].length);
	criaQueryString();
	requisicaoHTTP("POST",url,true);
}

//--------Cria a string a ser enviada, formato campo1=valor1&campo2=valor2&...campoN=valorN -------------
function criaQueryString(){
	alert("dentro Cria Query" + document.forms[0].lenght);
	dadosUsuario="";
	var frm = document.forms[0];	
	var numElementos = frm.elements.lenght;
	for(var i = 0; i<numElementos; i++){
		if(i<numElementos-1){
			dadosUsuario += frm.elements[i].name+"="+encodeURIComponent(frm.elements[i].value)+"&";
		}else{
			dadosUsuario += frm.elements[i].name+"="+encodeURIComponent(frm.elements[i].value);
		}
	}
}

//--------Trata a resposta do Servidor ----------------------
function trataResposta(){
	if(ajax.readyState == 4){  //Se o request foi finalizado e se está pronto para receber uma resposta
		if(ajax.status == 200){ // Se OK
			trataDados();   // criar essa função trataDados no programa;
		}else{
			alert("Problema na comunicação com objeto XMLHttpRequest.");
		}
	}
}